package Clases;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class Mail {

    private final Properties propiedades = new Properties();
    private Session sesion;

    public Mail() {
    }

    private void init() {
        //!!!!!!!sender passs y user poner uno por defecto para q les envie la contrasena .. podriamos crear una o poner la de la empresa
        propiedades.put("mail.smtp.host", "smtp.gmail.com"); //q sea cuenta d gmail la q se configura para enviar
        propiedades.put("mail.smtp.starttls.enable", "true");
        propiedades.put("mail.smtp.port", 587);
        propiedades.put("mail.smtp.mail.sender", "ebenezer.sipe@gmail.com"); //se configura esta cuenta para q envie los correos
        propiedades.put("mail.smtp.password", "masterSIPE");
        propiedades.put("mail.smtp.user", "ebenezer.sipe@gmail.com");
        propiedades.put("mail.smtp.auth", "true");
        sesion = Session.getDefaultInstance(propiedades); //sesion de correo por la que todo funciona.
    }

    public void enviar(String destino, String asunto, String contenido) {
        init();
        try {
            MimeMessage mensaje = new MimeMessage(sesion); //define el contendio q se va a transferir/se hace q el mensaje entienda MIME types and headers
            mensaje.setFrom(new InternetAddress((String) propiedades.get("mail.smtp.mail.sender")));
            mensaje.addRecipient(Message.RecipientType.TO, new InternetAddress(destino));
            mensaje.setSubject(asunto);
            mensaje.setText(contenido);
            Transport t = sesion.getTransport("smtp"); //protocolo especifico para enviar el msj (SMTP).
            t.connect((String) propiedades.get("mail.smtp.user"), (String) propiedades.get("mail.smtp.password"));
            t.sendMessage(mensaje, mensaje.getAllRecipients());
            t.close();
        } catch (MessagingException e) {
        }
    }
}
